package cn.b.sky.mes.mm.dao;

import java.util.List;

import cn.b.sky.mes.mm.model.Distributionmode;
import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.mm.model.condition.DistributionmodeCondition;

/**
 * 
 * <strong>Title : DistributionmodeDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.cm.dao<br></strong>
 * <strong>Description : </strong>物料配送形式持久层<br> 
 * <strong>Create on : 2016-9-9 上午10:33:01<br></strong>
 * <p>
 * @author ZhiPeng.Tong<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface DistributionmodeDao {

  /**
   *   
   * <strong>Title : selectdistributionmodeList<br></strong>
   * <strong>Description : </strong>查询返回物料配送类型列表<br> 
   * <strong>Create on : 2016-9-9 下午2:29:26<br></strong>
   * <p>
   * @param distributionmodeCondition
   * @return
   * List<Distributionmode>
   * @throws 
   * @author ZhiPeng.Tong<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<Distributionmode> selectdistributionmodeList(DistributionmodeCondition distributionmodeCondition);

  /**
   * 
   * <strong>Title : getDistributionmodeCount<br></strong>
   * <strong>Description : </strong>查询返回物料配送类型总数<br> 
   * <strong>Create on : 2016-9-9 下午2:28:25<br></strong>
   * <p>
   * @param distributionmodeCondition
   * @return
   * int
   * @throws 
   * @author ZhiPeng.Tong<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int getDistributionmodeCount(DistributionmodeCondition distributionmodeCondition);

  /**
   * 
   * <strong>Title : getDistributionmode<br></strong>
   * <strong>Description : </strong>根据id获取物料配送形式实体类<br> 
   * <strong>Create on : 2016-9-9 下午2:27:03<br></strong>
   * <p>
   * @param distributionModeCode
   * @param siteCode
   * @return
   * Distributionmode
   * @throws 
   * @author ZhiPeng.Tong<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public Distributionmode getDistributionmode( @Param("siteCode") String siteCode,@Param("distributionModeCode") String distributionModeCode
     );

  /**
   * 
   * <strong>Title : insertDistributionmode<br></strong>
   * <strong>Description : </strong>新增物料配送实体类型<br> 
   * <strong>Create on : 2016-9-9 下午2:49:25<br></strong>
   * <p>
   * @param distributionmode
   * void
   * @throws 
   * @author ZhiPeng.Tong<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void insertDistributionmode(Distributionmode distributionmode);

  /**
   * 
   * <strong>Title : updateDistributionmode<br></strong>
   * <strong>Description : </strong>修改物料配送实体类型<br> 
   * <strong>Create on : 2016-9-9 下午2:50:26<br></strong>
   * <p>
   * @param distributionmode
   * void
   * @throws 
   * @author ZhiPeng.Tong<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updateDistributionmode(Distributionmode distributionmode);

  /**
   * 
   * <strong>Title : getDistributionModeExactCount<br></strong>
   * <strong>Description : </strong>按条件查询同一工厂下物料配送形式总数<br> 
   * <strong>Create on : 2016-9-9 下午4:07:56<br></strong>
   * <p>
   * @param distributionmodeCondition
   * @return
   * int
   * @throws 
   * @author ZhiPeng.Tong<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int getDistributionModeExactCount(DistributionmodeCondition distributionmodeCondition);

  /**
   * 
   * <strong>Title : deleteDistributionmode<br></strong>
   * <strong>Description : </strong>删除物料配送方式实体类<br> 
   * <strong>Create on : 2016-9-10 上午9:13:47<br></strong>
   * <p>
   * @param distributionModeCode
   * @param siteCode
   * void
   * @throws 
   * @author ZhiPeng.Tong<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteDistributionmode(@Param("siteCode") String siteCode,
      @Param("distributionModeCode") String distributionModeCode);
  
  /**
   * 
   * <strong>Title : selectAlldistributionmode<br></strong>
   * <strong>Description : </strong>查询所有配送形式<br> 
   * <strong>Create on : 2016年9月12日 上午9:55:27<br></strong>
   * <p>
   * @param isContainLock 是否包含锁定记录
   * @return
   * List<Distributionmode>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<Distributionmode> selectAlldistributionmode( @Param("isContainLock")boolean isContainLock);
}
